# 自定义异常对象,
# from werkzeug.exceptions import HTTPException
# class ClientTypeError(HTTPException):
#     # 400(请求参数) 401（未授权） 403（禁止访问） 404（未找到）
#     # 500(服务段未知错误）
#     # 200（查询成功） 201（创建或更新成功） 204（更新成功）
#     # 301（重定向：永久性转移） 302（暂时性转移）
#     code = 400
#     description = 'client type is invalid'


from app.libs.error import APIException

#  客户端类型form 参数错误提示， 这里包含 code 和msg 可以参考 werkzeug.exceptions类里面的错误
class ClientTypeError(APIException):
    # 400(请求参数) 401（未授权） 403（禁止访问） 404（未找到）
    # 500(服务段未知错误）
    # 200（查询成功） 201（创建或更新成功） 204（更新成功）
    # 301（重定向：永久性转移） 302（暂时性转移）
    code = 400
    msg = 'client type is invalid'
    error_code = 1006


class ParameterException(APIException):
    code = 400
    msg = 'invalid parameter'
    error_code = 1000

class Success(APIException):
    code = 201
    msg = 'ok'
    error_code = 0
class DeleteSuccess(Success):
    code = 202
    error_code = 0
class ServerError(APIException):
    code = 500
    msg = 'sorry, we made a mistake (*￣︶￣)!'
    error_code = 999

class NotFound(APIException):
    code = 404
    msg = 'the resource are not found O__O...'
    error_code = 1001


class AuthFailed(APIException):
    code = 401
    error_code = 1005
    msg = 'authorization failed'


class Forbidden(APIException):
    code = 403
    error_code = 1004
    msg = 'forbidden, not in scope'


class DuplicateGift(APIException):
    code = 400
    error_code = 2001
    msg = 'the current book has already in gift'
